﻿Public Class DtomaAccion

    Public Shared Function SeleccionarTodoXPosCliente(ByVal descEmpresa As String, ByVal pProforma As EproformaCabecera) As List(Of EtomaAccion)
        Dim tomaAccions As List(Of EtomaAccion) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_tomaAccion_selXPosCliente", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProforma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProforma.idEtapa
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pProforma.idCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            tomaAccions = New List(Of EtomaAccion)
                            Dim tomaAccion As EtomaAccion = Nothing
                            Do While dr.Read
                                tomaAccion = New EtomaAccion( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTomaAccion")), _
                                    dr.GetInt32(dr.GetOrdinal("idAccion")), _
                                    dr.GetString(dr.GetOrdinal("descAccion")), _
                                    dr.GetString(dr.GetOrdinal("fchAccion")), _
                                    dr.GetString(dr.GetOrdinal("horaAccion")), _
                                    dr.GetInt32(dr.GetOrdinal("idRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("descRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("fchRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("horaRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("comentario")), _
                                    dr.GetString(dr.GetOrdinal("usuario")))
                                tomaAccions.Add(tomaAccion)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return tomaAccions
    End Function
    Public Shared Function SeleccionarTodoXCliente(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EtomaAccion)
        Dim tomaAccions As List(Of EtomaAccion) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_tomaAccion_selXCliente", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pSeparacionVenta.Ecliente.idCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            tomaAccions = New List(Of EtomaAccion)
                            Dim tomaAccion As EtomaAccion = Nothing
                            Do While dr.Read
                                tomaAccion = New EtomaAccion( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTomaAccion")), _
                                    dr.GetInt32(dr.GetOrdinal("idAccion")), _
                                    dr.GetString(dr.GetOrdinal("descAccion")), _
                                    dr.GetString(dr.GetOrdinal("fchAccion")), _
                                    dr.GetString(dr.GetOrdinal("horaAccion")), _
                                    dr.GetInt32(dr.GetOrdinal("idRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("descRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("fchRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("horaRespuesta")), _
                                    dr.GetString(dr.GetOrdinal("comentario")), _
                                    dr.GetString(dr.GetOrdinal("usuario")))
                                tomaAccions.Add(tomaAccion)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return tomaAccions
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal paccion As EtomaAccion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_tomaAccion_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.VarChar, 55).Value = paccion.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.VarChar, 55).Value = paccion.idEtapa
                'correlativo cmd.Parameters.Add("@idTomaAccion", SqlDbType.VarChar, 55).Value = paccion.idTomaAccion
                cmd.Parameters.Add("@idTpoCliente", SqlDbType.Int).Value = paccion.idTpoCliente
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = paccion.idCliente
                cmd.Parameters.Add("@idAccion", SqlDbType.Int).Value = paccion.idAccion
                cmd.Parameters.Add("@fchAccion", SqlDbType.VarChar, 10).Value = paccion.fchAccion
                cmd.Parameters.Add("@horaAccion", SqlDbType.VarChar, 10).Value = paccion.horaAccion
                cmd.Parameters.Add("@idRespuesta", SqlDbType.Int).Value = paccion.idRespuesta
                cmd.Parameters.Add("@fchRespuesta", SqlDbType.VarChar, 10).Value = paccion.fchRespuesta
                cmd.Parameters.Add("@horaRespuesta", SqlDbType.VarChar, 10).Value = paccion.horaRespuesta
                cmd.Parameters.Add("@comentario", SqlDbType.VarChar, 512).Value = paccion.comentario
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = paccion.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal paccion As EtomaAccion) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_tomaAccion_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.VarChar, 55).Value = paccion.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.VarChar, 55).Value = paccion.idEtapa
                cmd.Parameters.Add("@idTomaAccion", SqlDbType.VarChar, 55).Value = paccion.idTomaAccion
                cmd.Parameters.Add("@idTpoCliente", SqlDbType.Int).Value = paccion.idTpoCliente
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = paccion.idCliente
                cmd.Parameters.Add("@idAccion", SqlDbType.Int).Value = paccion.idAccion
                cmd.Parameters.Add("@fchAccion", SqlDbType.VarChar, 10).Value = paccion.fchAccion
                cmd.Parameters.Add("@horaAccion", SqlDbType.VarChar, 10).Value = paccion.horaAccion
                cmd.Parameters.Add("@idRespuesta", SqlDbType.Int).Value = paccion.idRespuesta
                cmd.Parameters.Add("@fchRespuesta", SqlDbType.VarChar, 10).Value = paccion.fchRespuesta
                cmd.Parameters.Add("@horaRespuesta", SqlDbType.VarChar, 10).Value = paccion.horaRespuesta
                cmd.Parameters.Add("@comentario", SqlDbType.VarChar, 512).Value = paccion.comentario
                cmd.Parameters.Add("@estado", SqlDbType.VarChar, 55).Value = paccion.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = paccion.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
